1. Field of the Invention
The invention relates to memory circuits and, more particularly, to fully synchronous pipelined random access memory circuits with individual byte write capabilities.
2. Background
Synchronous state RAMs (SRAMs) are available for use in high performance systems requiring operation with a fast system clock. Some SRAMs are available which use registers to temporarily store address and control. These SRAMs use a "pipeline" scheme where the address to be accessed is provided during one cycle and, during the next sequential cycle, the data is provided on the data bus. For example, during a read operation, the address from which data is to be read is provided on the nth cycle and the data read from the SRAM is provided on the data bus on the (n+1)th cycle. For write operations, there are SRAMs that provide the address, control and data during the same cycle and there are designs where address and control are provided on the nth cycle and data is provided on the (n+1)th cycle.
The speed of the SRAM is increased by pipelining because the set-up and hold time for a register or latch is typically much shorter than the time to access the main array of the SRAM (the difference typically being several nanoseconds). The result is to break the operations into shorter cycles. On the (n+1)th cycle, the register or latch provides the stored address to the SRAMs main array along with the data to be written to the stored address, meeting the set-up and hold times for writing to the SRAM's main array. The SRAM's cycle time as viewed at the pins of the device can be significantly reduced because of the reduced set-up and hold time for the address and data on the (n+1)th cycle. As a result, the frequency of the system clock can be increased.
One problem with conventional SRAMs is that, typically, trying to intermix reads and writes in a high speed system causes a cycle to be "lost" when a memory write is immediately followed by a memory read (i.e., bus turnaround). Generally, a cycle is lost on turnaround because the structure of these RAMs requires an extra cycle to make sure that all of the data is written into the memory before a read operation can be performed. For example, if a write operation is followed by a read operation from the same address, a lost cycle is needed so that the "new" data will be written to the specified address before the read operation is performed on the data stored at the same address. In systems where bus turnaround occurs frequently, the lost cycles on bus turnaround can significantly reduce the bandwidth of the system. With conventional synchronous SRAMs, the same problem can exist.
The invention disclosed in applicant's prior application, Ser. No. 08/635,128, now U.S. Pat. No. 5,858,631 is a fully synchronous Pipelined RAM with no lost cycles on bus turnaround (i.e., the RAM is capable of performing a read operation during any clock cycle or a write operation during any clock cycle, without limitation). The application disclosed both a "single pipelined" SRAM and a "double pipeline" SRAM. The single-pipelined SRAM includes a memory, an input circuit and a logic circuit. The input circuit is coupled to receive a memory address and control signals during any cycle (referred to as the nth cycle). During a write operation on the nth cycle, the corresponding write data to be written into the SRAM is provided during the next, (n+1)th, cycle. During the nth cycle, the logic circuit causes the previously stored write data to be written from the input circuit into the memory while the new write data is received into the input circuit on the (n+1)th cycle. The write data remains in the logic circuit on any intervening read cycle.
On a read operation, the logic circuit compares the address of the read operation to the address of the most recent write operation. If the addresses match, then the SRAM outputs the data stored in the input circuit; however, if the addresses do not match, the SRAM outputs the data stored in the memory corresponding to the requested read address.
In double pipelined operation, the input circuit is coupled to receive a memory address and control signals during any cycle (the nth cycle) and receives data to be written into the SRAM on the (n+2)nd cycle or outputs data from a read operation on the (n+2)nd cycle. Again, if the address of a read request matches one of the stored write addresses, the corresponding data is outputted through the logic circuit on the (n+2)nd clock cycle.
These devices, however, write whole words of data into memory and are not capable of replacing individual bytes of a word separately.